import axios from 'axios'
import { bUrl } from './url'
import { getToken, removeToken } from './auth'

const ax = axios.create({
  baseURL: bUrl
})

// 请求拦截器
// 判断config,给需要添加token的url请求头添加时
ax.interceptors.request.use(config => {
  const { url } = config
  if (url.startsWith('/user') && !url.startsWith('/user/login') &&!url.startsWith('/user/registered') ) {
    config.headers.Authorization = getToken()
  }
  return config
})

// 响应拦截器
// 在这个判断body里的状态码 res.body.status
// 为400就代表token失效
ax.interceptors.response.use(response => {
const { status } = response.data
// token失效
if (status === 400) {
  removeToken() // 删除本地token
}
return response
}, err => {
  console.log(err)
})

export default function request (url, method, data,...res) { //...res接收剩余参数
  return ax({ url, method, ...data ,...res[0]}) // 将剩余参数再展开
}